Android 项目导出为 jar 包后调用外部资源的问题

石朝辉2015-06-02 12:04AndroidAndroid jar Resource

转载请注明出处,点击此处open in new window 查看更多精彩内容

将一个项目导出为jar包

很简单,步骤:右键点击目标项目 --> 选择 Export... --> 选择 Java --> 选中 Jar file --> 点击 Next 按钮 --> 将勾选全部去掉只保留 src --> 下面有个框框可以选择导出路径 --> Finish

  • 如果项目中没有使用到资源(如图片、布局文件)直接导出即可。
  • 如果有资源文件那么直接导出也不会报错。但是在使用的时候会报一些 id 找不到之类的错误。

本文将介绍几种项目导出为 jar 包后仍能调用资源的方式。

第一种:通过反射动态获取资源 id

参考另一篇文章:http://blog.csdn.net/u014165119/article/details/46302695

把原来的 R.id.×××R.layout.××× 等资源 id 获取方式改为 MResource.getViewIdByName(Context context, String name)MResource.getLayoutIdByName(Context context, String name) 等方式,之后正常导出 jar 包。使用 jar 包时把资源一起拷贝到新项目对应的位置即可。

第二种:使用 library 库的方式(1)

只需要把要封装 jar 包的项目改为 library,并在要使用 jar 包的项目中引用此项目,并把 library 中的 AndroidManifest.xml 文件中的内容添加到使用 library 的项目的 AndroidManifest.xml 文件中。

将普通Android项目变成library: 右键点击要变的项目 --> 选择 Properties --> 在弹出框的左上角选择 Android --> 勾选 Is Library 单选框 --> OK

引用library: 右键点击要变的项目 --> 选择 Properties --> 在弹出框的左上角选择 Android --> 点击 Add... 按钮 --> 在弹出框中选中要使用的 library --> OK

注意:这种方式使用起来比较简单,但是会暴露源码,如果要给其他公司使用就不行了。

第三种:使用 library 库的方式(2)

步骤:

  1. 把要封装 jar 包的项目设置为 library 库(Is Library)。
  2. 将项目 Clean 一次。步骤:工具栏点击 Project --> 选择 Clean... --> 选中项目 --> OK
  3. 使用 Export 导出 jar 包(只导出 src 目录下的源码)。
  4. 将导出的 jar 文件复制到项目的 libs 文件夹下,并删除 src 下的源码。
  5. 在使用 library 的项目中 引用library
  6. library 中的 AndroidManifest.xml 文件中的内容添加到使用 library 的项目的 AndroidManifest.xml 文件中。

这种方式是 libraryjar 包结合使用,既隐藏了源码,又简单方便。

注意: 使用第二、第三中方式时,布局文件等资源的名字在 library 库和引用 library 库的项目中不能有相同的。

第四种 Android Studio AAR文件

Android Studio 打包及引用AARopen in new window

Eclipse 中使用AARopen in new window

最后更新于 2024-02-04 02:20:03